package com.atguigu.stgy.model.base;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.util.Date;

@Data
@Schema(description = "实体类基类")
public class BaseEntity {
    @Schema(description = "主键值")
    //配置jackson转换对象位json时  该属性 转为字符串类型
//    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;
    @JsonIgnore //生成json时忽略此属性
    @Schema(description = "创建时间")
    //将标注的属性值 按照时间日期格式和时区进行转换处理
    @JsonFormat(timezone = "GMT+8" , pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;
    @JsonIgnore //生成json时忽略此属性
    @Schema(description = "更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;
    @JsonIgnore //生成json时忽略此属性
    @Schema(description = "逻辑删除字段：0未删除，1已删除")
    @TableLogic //表示当前字段为逻辑删除字段    false 0 表示未删除    1 true表示删除
    @TableField(value = "is_deleted")
    private Boolean deleted = false;
}
